Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

299
Visualizações
El uso de "getAll ()" en un IndexedDB sigue arrojando errores. ¿Hay un límite en la cantidad de datos que se pueden devolver?

PROBLEMA: Sé que hay un límite en la cantidad de registros (2 ^ 32 - 1 por Mozilla ) que se pueden devolver desde IndexedDB , pero ¿qué pasa con los datos? Tengo un problema con IDBIndex.getAll() , o IDBObjectStore.getAll() para el caso, arrojando un error genérico cada vez que la cantidad de datos aparentemente excede un cierto tamaño.

 "DOMException: The operation failed for reasons unrelated to the database itself and not covered by any other error code."

Estoy usando Firefox, y esto ha sido un problema por un tiempo.

EJEMPLO:

 ... open the database, etc ... let index = db.transaction("database").objectStore("myStore").index("myIndex"); let range = IDBKeyRange.lowerBound(100000); // That's just a random number for the example let results = index.getAll(range); results.onerror = e => {...}; results.onsuccess = e => {...};

Eso siempre arrojará un error. Pero si cambio el rango a IDBKeyRange.lowerBound(100001) , siempre funciona.

PRUEBAS: si tuviera que convertir lowerBound en upperBound (y cambiar el rango), la cantidad de registros devueltos sin arrojar un error cambiaría, pero ese número sería consistente. Dado que no todos los registros tienen la misma cantidad de datos, y la cantidad de registros devueltos en cada caso es bastante cercana (19 844 frente a 20 188), eso parece respaldar mi afirmación. Lo mismo sucede si cambio el índice, solo un número diferente de registros.

Editar: probé la base de datos en otra máquina y obtuve un número máximo diferente de registros devueltos, pero ese número también fue consistente.

También intenté cerrar programas, pensando que tal vez era un problema de memoria, y cambiando el tamaño de mi base de datos agregando o eliminando una cantidad significativa de registros, pero eso no tuvo ningún efecto en los resultados devueltos.

Como solución, actualmente estoy usando openCursor() para evaluar cada registro individualmente, pero eso es más lento que usar getAll() ya que quiero todos los datos de cada registro que satisfagan la consulta.

¿Alguna idea de lo que está mal y cómo solucionarlo?

Ver problema relacionado que nunca se resolvió

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda